# -*- coding:utf-8 -*-
# 题二: 写一个小工具，可以将任意一张图像填充到另一张图像的box_b所指定的区域中。

from PIL import Image
from jsonop import get_box_info


def image_fill(image_path1, image_path2, target_path, position):
    """
    可以将任意一张图像填充到另一张图像的box_b所指定的区域中
    TODO 加入异常判断,防止给出json值超过源图片大小导致异常
    :param imagepath1: 图片一路径信息
    :param imagepath2: 图片二路径信息
    :param targetpath: 结果图片保存路径
    :param position: 拼接位置
    :return: None
    """
    image1 = Image.open(image_path1)
    image2 = Image.open(image_path2)
    x, y, xw, yh = position['left_top'][0], position['left_top'][1], position['right_bottom'][0], \
                   position['right_bottom'][1]
    image1 = image1.resize((xw - x, yh - y))  # 这里进行图像resize, 需求没确定如何填入 压缩填入&裁减填入
    image2.paste(image1, (x, y, xw, yh))  # 这里进行填充操作
    image2.save(target_path)


if __name__ == '__main__':
    # 下方是测试代码
    image_path1 = './images/img.png'
    image_path2 = './images/img1.png'
    json_info = get_box_info('./boxes.json', 'box_b')
    image_fill(image_path1, image_path2, 'restult.png', json_info)
